

// 附表类(记录标识对应图片备注)
class 附表类{
    constructor(){
        this.标识列=[];
        this.图片列=[];
        this.备注列=[];
        this.时间列=[];
        this.操作列=[];
        this.len=0;
    }
    附加追加(biaoShi,TuPian,BeiZhu,Time,Jober){
        this.标识列.push(biaoShi);
        this.图片列.push(TuPian);
        this.备注列.push(BeiZhu);
        this.时间列.push(Time);
        this.操作列.push(Jober);
        this.len++;
    }

}

// 操作类,继承附表类(记录标识对应最后操作者的信息)
class 操作类 extends 附表类{
    constructor(){
        super();
        this.最后操作='';
    }
    操作追加(BiaoShi,Jober,BeiZhu,Time){
        this.最后操作=Jober;
        this.附加追加(BiaoShi,'',BeiZhu,Time,Jober)
    }
}

// 抄表类(包含附加表类和操作表类的记录)
class 抄表类{
    constructor(biaoName,旧值=0,单价=0){
        this.表名=biaoName;
        this.旧值=旧值;
        this.单价=单价;
        this.抄表列=[];
        this.附加表=new 附表类();
        this.操作表=new 操作类();
        this.len=0;
    }
    抄表追加(zhi,jober){
        this.抄表列.push(zhi);
        this.len++;
        this.操作表.操作追加(this.len,jober,'','')
        this.附加表.附加追加(this.len,'','','',jober)
    }
    计费(){
        let sum=0;
        let lenx=this.抄表列.length;
        sum=(this.抄表列[lenx]-this.旧值)*this.单价;
        return sum;
    }
}

// 房间信息类(记录房间面积,房间备注是否带家电,房间图片信息,最后操作者)
class 房间信息类{
    constructor(){
        this.面积=''
        this.房间备注=[];
        this.照片信息=new 附表类();
        this.操作表=new 操作类();
    }
}


//用户信息类(记录房主入住个人信息以及余额情况)
class 房间用户信息类{
    constructor(){
        this.余额=0;
        this.姓名='';
        this.手机=[];
        this.身份证='';
        this.钥匙表=new 附表类();
        this.备注表=new 附表类();
        this.操作表=new 操作类();
        this.入住时间='';
    }
}


// 房间类(记录房间号码,房间状态,房间价格,水电表,房主,维修,操作)
class 房间类{
    constructor(fanghao){
        this.房号=fanghao;
        this.房间状态='未租';//'已租','未租','维修','自用','损坏','删除'
        this.价格房间='333';
        this.价格押金=500;
        this.价格单水=3;
        this.价格单电=1;
        this.价格单煤=0;
        this.价格垃圾=0;
        this.价格网费=0;
        this.价格杂费=0;
        this.水表信息=new 抄表类('水表信息',0,this.价格单水);
        this.电表信息=new 抄表类('电表信息',0,this.价格单电);
        this.煤表信息=new 抄表类('煤表信息',0,this.价格单煤);
        this.房间信息=new 房间信息类();
        this.房主信息=new 房间用户信息类();
        this.维修备注=new 附表类();
        this.操作表=new 操作类();

    }
}

//出租房类(记录以及管理出租房报表查询修改等操作)
class 出租房类 extends 房间类{
    constructor(){
        super();
        this.房间表=[];
        this.len=0;
    }

    房间追加(fanghao){
        this.房间表.push(new 房间类());
        this.len++;
        let temp=this.房间表[this.len-1];
        temp.房号=fanghao;
    }

    查找房号下标(房号){
        for(var i=0;i<this.len;i++){
            if(this.房间表[i].房号==房号){
                return i;
            }
        }
        return -1;
    }

    编辑房间价格(房号,价格房间){
        let lenx=this.查找房号下标(房号);
        this.房间表[lenx].价格房间=价格房间;
    }

    编辑住户(房号,姓名,手机,身份证){
        let lenx=this.查找房号下标(房号);
        if(lenx>=0){
            this.房间表[lenx].房主信息.姓名=姓名;
            this.房间表[lenx].房主信息.手机=手机;
            this.房间表[lenx].房主信息.身份证=身份证;
        }
    }
    查看住户(房号){
        let lenx=this.查找房号下标(房号);
        if(lenx>=0){
            console.log(this.房间表[lenx].房主信息);
        }

    }
    抄水表(房号,抄表值,操作者='jpf'){
        let lenx=this.查找房号下标(房号);
        if(lenx>=0){
            this.房间表[lenx].水表信息.抄表追加(抄表值,操作者);
            console.log(this.房间表[lenx].水表信息);
        }
        else{
            console.log('房间号错误,抄表水失败!');
        }
    }
    查看水表(房号){
        let lenx=this.查找房号下标(房号);
        if(lenx>=0){
            let 水表信息=this.房间表[lenx].水表信息;
            console.log(水表信息.抄表列[水表信息.len-1]);
        }
        else{
            console.log('房间号错误!');
        }
    }

}

// 我是谁
管理者='简沛锋';
租户1='苏某某某';
租户2='黄某某某';
租户3='熊某某某';
租户4='简某某某';

电梯公寓=new 出租房类();
// 添加房间505房
电梯公寓.房间追加('101房');
电梯公寓.房间追加('205房');
电梯公寓.房间追加('505房');
电梯公寓.编辑房间价格('505房',250);
电梯公寓.编辑住户('505房',租户4,'13416837434','441900000000000000');
电梯公寓.查看住户('505房');
电梯公寓.抄水表('505房',1000001);
电梯公寓.抄水表('505房',1000011);
电梯公寓.抄水表('505房',1000021);
电梯公寓.查看水表('505房');
// console.log('中心路.房间表[2].房主信息=',中心路.房间表[2].房主信息);

console.log('.');

